/**
 * 精确执行除法运算，保留指定的小数位数。
 *
 * @param {number|string} num1 - 被除数。
 * @param {number|string} num2 - 除数。
 * @param {number} decimalPlaces - 结果应保留的小数位数。
 * @return {number} 返回保留指定小数位数的除法结果。
 * @throws {Error} 如果输入的数字格式无效或尝试除以零，将抛出错误。
 */
function preciseDivide(num1, num2, decimalPlaces) {

    // 将两个数转换为数字类型
    num1 = parseFloat(num1);
    num2 = parseFloat(num2);

    var baseNum1 = 0, baseNum2 = 0;
    var baseNum3, baseNum4;
    try {
        baseNum1 = num1.toString().split(".")[1].length;
    } catch (e) {
        baseNum1 = 0;
    }
    try {
        baseNum2 = num2.toString().split(".")[1].length;
    } catch (e) {
        baseNum2 = 0;
    }
    with (Math) {
        baseNum3 = Number(num1.toString().replace(".", ""));
        baseNum4 = Number(num2.toString().replace(".", ""));
        var result = (baseNum3 / baseNum4) * pow(10, baseNum2 - baseNum1);
        // 返回保留指定位数小数的结果
        return parseFloat(result.toFixed(decimalPlaces));
    }
}